package org.eremite.corm.party;

import org.eremite.corm.BaseArchetype;
import org.eremite.corm.Archetype;
import org.eremite.corm.party.address.*;
import org.eremite.corm.party.relationship.*;

import javax.ejb.Local;
import java.util.List;

@Local
public interface BeanManager<A extends BaseArchetype> {

    public void add(Archetype... archs);
    public void update(BaseArchetype... archs);
    public void refresh(BaseArchetype... archs);
    public void remove(BaseArchetype... archs);
    public void clear(String table);

    public List<A> getList(String table);
    public List<Address> getAddresses();
    public List<AssociatedAddress> getAssociatedAddresses();
    public List<EmailAddress> getEmailAddresses();
    public List<GeographicAddress> getGeographicAddresses();
    public List<ISOCountryCode> getISOCountryCodes();
    public List<Locale> getLocales();
    public List<TelecomAddress> getTelecomAddresses();
    public List<WebPageAddress> getWebPageAddresses();
    public List<AssignedResponsibility> getAssignedResponsibilities();
    public List<Capability> getCapabilities();
    public List<PartyRelationship> getPartyRelationships();
    public List<PartyRelationship> getPartyRelationships(String collection);
    public List<PartyRelationshipType> getPartyRelationshipTypes();
    public List<PartyRole> getPartyRoles();
    public List<PartyRole> getPartyRoles(String collection);
    public List<PartyRoleType> getPartyRoleTypes();
    public List<Responsibility> getResponsibilities();
    public List<Organization> getOrganizations();
    public List<OrganizationName> getOrganizationNames();
    public List<Party> getParties();
    public List<Party> getParties(String collection);
    public List<PartySignature> getPartySignatures();
    public List<Person> getPersons();
    public List<PersonName> getPersonNames();
    public List<Binding> getBindings();
    public List<BindingValue> getBindingValues();
    public List<BindingType> getBindingTypes();
    public List<RegisteredIdentifier> getRegisteredIdentifiers();

}
